#include<iostream>

using namespace std;
const int N=1e6+10;
int pos;
bool flagbit[N];
int primeset[N];
int nums[N];
int flag=2;
void get_prime()
{
	for(int i=2;i<=1e6;i++)
	{
		if(!flagbit[i])
		{
			primeset[++pos]=i;
		}
		for(int j=1;1ll*primeset[j]*i<=1e6;j++)
		{
			flagbit[primeset[j]*i]=true;
			if(i%primeset[j]==0) break;
		}
	}
}
bool realize(int n)
{
	for(int i=1;i<=pos;i++)
	{
		if(primeset[i]>n) break;
		if(flagbit[n-primeset[i]]==false)
		{
			printf("%d = %d + %d\n",n,primeset[i],n-primeset[i]);
			return true;
		}
	}
	return false;
}
int main()
{
	int n;
	get_prime();
	while(cin>>n,n)
	{
		realize(n);
	}
}